// +----------------------------------------------------------------------
// | 网络请求request工具类
// 接口文档 https://console-docs.apipost.cn/preview/ceb2b7dad45c2c25/2afd226288284281
// 密码：123456789
// +----------------------------------------------------------------------

import {
	HTTP_REQUEST_URL,
	HEADER,
	TOKENNAME
} from '@/config/app';
import utilsConfig from '../config/utilsConfig';

/**
 * 发送请求
 * url：api
 * method:请求方法
 * data:参数
 * noAuth：是否需要登录
 * noVerify：是否需要校验
 */
function baseRequest(url, method, data, {
	noAuth = false, //是否免登录
	noVerify = false
},showErrorInfo = true) {
	let Url = HTTP_REQUEST_URL,
		header = HEADER;

	//微信小程序如果需要登录状态才能请求的数据的话，
	//需要传递token token可以在登录的时候获取到token放到缓存中 
	//在这里进行缓存token的获取
	//noAuth = false;时 需要登录状态，并获取到token TOKENNAME
	// console.log(">>>>>>>>>>>>>>>>" + url)
	// console.log(">>>>>>>>>>>>>>>>>>" + noAuth)
	// if (!noAuth) {		
	// 	const value = uni.getStorageSync('login');
	// 	if (value) {
	// 		let token = value.jwt_token
	// 		header['jwt_token'] = token
	// 	} else {
	// 		uni.navigateTo({
	// 			url: '/pages/login/login'
	// 		})
	// 		return
	// 	}
	// }

	return new Promise((reslove, reject) => {
		uni.showLoading({
			mask: true,
			title:'加载中'
		})
		uni.request({
			url: Url + url,
			method: method || 'GET',
			header: header,
			data: data || {},
			success: async (res) => {
				await setTimeout(()=>{
					uni.hideLoading()
				},300)
				if (res.data.code != 0 && res.data.message && showErrorInfo) {
					uni.showToast({
						title: res.data.message,
						icon: 'none'
					})
				}
				reslove(res.data, res);
			},
			fail: (msg) => {
				uni.hideLoading({})
				console.log("网络请求失败返回的数据" + JSON.stringify(msg))
				let data = {
					mag: msg,
					status: 1 //1没网
				}
				reject(data);
			}
		})
	});
}

const request = {};

['options', 'get', 'post', 'put', 'head', 'delete', 'trace', 'connect'].forEach((method) => {
	request[method] = (api, data, opt, showErrorInfo) => baseRequest(api, method, data, opt || {}, showErrorInfo)
});

export default request;